package com.victor.pomelo.service;

import java.util.List;

import com.victor.pomelo.model.Group;
import com.victor.pomelo.model.Node;

public interface GroupService {
	/**
	 * 创建用户组
	 * 
	 * @param group
	 * @return
	 */
	public Group createGroup(Group group);

	/**
	 * 更新用户组
	 * 
	 * @param group
	 * @return
	 */
	public Group updateGroup(Group group);

	/**
	 * 删除用户组
	 * 
	 * @param groupId
	 */
	public void deleteGroup(Long groupId);

	/**
	 * 查询单个用户组
	 * 
	 * @param groupId
	 * @return
	 */
	public Group findById(Long groupId);

	/**
	 * 查询用户组列表
	 * 
	 * @return
	 */
	public List<Group> findAll();

	/**
	 * 移动用户组
	 * 
	 * @param source
	 * @param target
	 */
	void move(Group source, Group target);

	/**
	 * 通过groupid获取子用户组列表
	 * 
	 * @param groupid
	 * @return
	 */
	public List<Group> findChild(Long groupid);

	/**
	 * 通过groupid获取子用户组列表
	 * 
	 * @param groupid
	 * @return
	 */
	public List<Node> findChildren(Long groupid, Integer level);

}
